Capacitive sensors increasingly replace mechanical buttons in consumer and handheld equipment. They are low cost and robust, as they require no mechanical components, and can sense the presence of a finger through a dielectric material, such as an encapsulation or glass. The capacitive sensors are usually detected by measuring the self-capacitance of the sensor, which will change up to a few percent when touched. If the detection is sensitive enough then proximity detection is also possible. Proximity detection allows detection of an approaching finger from a distance. This can be used to wake a device from a low power state before the application is physically touched. It is therefore particularly important to be able to detect proximity while using as little power as possible.
A disadvantage with capacitive sensors is that they have high impedance, making the sensors sensitive to electrical noise in the environment. The capacitance value can drift with environmental conditions, such as temperature and moisture. The challenge in capacitive sensing is producing an accurate capacitance measurement and distinguishing the signal from the noise and drift while consuming as little power as possible.
There are several conventional techniques in use to detect a change in self-capacitance of a capacitive sensor when touched or approached by a finger. One technique uses two I/O pins with a sensing capacitor between them. One of the input/output (I/O) pins is connected to the sensor. A switching sequence on each I/O driver pumps capacitance into the sensor capacitance until the I/O pin input threshold is reached. The drawback to this technique is that two I/O pins are needed, an external capacitor is needed and power is wasted by charging and discharging the sensor. In addition, noise rejection is limited.
Another technique uses an I/O pin to charge the sensor before sampling it with an analog-to-digital converter (ADC). The charge is shared between the sensor and a sample and hold (S/H) capacitor. The measurement is repeated with opposite charge on the sensor. This dual-slope measurement cancels low-frequency noise. However, there is no suppression of high frequency noise, apart from oversampling a large number of times, which is slow and requires power. In addition, the ADC must be used for sensing, limiting its use for other functions in an application. Only pins connected to the ADC input can be sensed, limiting the number of sensors in the system. Software is required for touch processing and detection.
In yet another technique, a microcontroller includes circuitry that can inject a fixed charge into the sensor capacitance and the S/H capacitor of the ADC. The resulting voltage on the ADC S/H capacitor can then be measured during conversion. This does not provide any noise rejection and software is required to process and detect touch.
In still another technique, the sensor pin is made to oscillate by charging it with a known current and comparing it to a fixed reference voltage. The resulting frequency is compared to a known frequency. The measurement sequence is long, and a large number of charge/discharge cycles are needed, resulting in wasted power. In addition, there is no noise rejection.